查看原文
其他

CVPR 2018 | 无监督且多态的图片样式转换技术,康奈尔大学与英伟达新作MUNIT及其源码

David 9 极市平台 2019-03-28
↑ 点击蓝字关注极市平台 识别先机 创造未来


来源:David 9的博客

         http://nooverfit.com/wp/cvpr2018精选1-无监督且多态的图片样式转换技术,康奈/

论文地址:https://arxiv.org/pdf/1804.04732.pdf


最近图片生成领域正刮着一股“无监督”之风,今天讲讲Cornell大学与英伟达的新作,正是使无监督可以生成“多态”图片的技术,论文名:Multimodal Unsupervised Image-to-Image Translation (MUNIT)。


这股“无监督”之风的刮起,只是因为我们发现用GAN结合一些人为约束和先验逻辑,训练时无需监督图片配对,直接在domain1和domain2中随机抽一些图片训练,即可得到样式转换模型。


这些约束和先验有许多做法,可以迫使样式转换模型(从domain1到domain2)保留domain1的一些语义特征;也可以像CycleGAN的循环一致约束,如果一张图片x从domain1转换到domain2变为y,那么把y再从domain2转换回domain1变为x2时,x应该和x2非常相似和一致:


来自CycleGAN:https://arxiv.org/pdf/1703.10593.pdf


而这些无监督方法有一个缺陷:不能生成多样(多态)的图片。MUNIT正是为了解决这一问题提出的,因为目前类似BicycleGAN(https://arxiv.org/abs/1711.11586)的多态图片生成方法都需要配对监督学习。


MUNIT为此做了一些约束和假设,如,假设图片有两部分信息:内容c和样式s,另外,图片样式转换时domain1和domain2是共享内容c的信息空间的:


MUNIT的自编码器


生成图片时,把同一个内容c和不同样式s组合并编码输出,就可生成多态的图片:


来自:https://arxiv.org/pdf/1804.04732.pdf


实际训练时,我们需要两个自编码器,分别对应domain1和domain2:


来自:https://arxiv.org/pdf/1804.04732.pdf


两个自编码器都要先在各自的domain中训练,过程中需要保证同一张图片x1可以被还原出相似的域中图片x1^,即所谓的让x1的domain内部重构的loss降到最小




其中E1是x1的编码器(分别编码成内容信息c和样式信息s),G1是解码器(根据c和s)解码成domain1中图片。


生成样式转换图片时,把另一个domain中的内容信息c2拿过来与当前domain的样式信息s1拼接,再解码生成新的图片,就可以从domain2生成domain1样式的图片x2->1,下图即交叉domain的转换方法:


来自:https://arxiv.org/pdf/1804.04732.pdf


这时对于转换后的图片x2->1, 需要构建所谓的隐含特征重构loss(latent reconstruction loss),即,用编码器再对图片x2->1编码后,依然可以得到内容信息c2与样式信息s1(显然这时符合直觉的):



即,内容c和样式s的编码器对于生成后的图片也是适用的。


最后一个需要关注的loss是对抗loss,即,通过上述交叉domain生成的图片必须与内部本身domain生成的图片无法区分:



所以综合上面的3个loss考虑,我们需要的总的loss如下:




这些loss在MUNIT的tensorflow源码中也有对应(代码位置:https://github.com/taki0112/MUNIT-Tensorflow/blob/...):




其中self.recon_x_w等以_w结尾是各自的权重。


MUNIT的自编码器的实际实现架构如下:


来自:https://arxiv.org/pdf/1804.04732.pdf


其中的内容编码器(content encoder)和样式编码器(style encoder)没什么好讲的。有意思的是解码器中要很好地整合c编码器和s编码器(内容和样式的完美合成),使用了自适应样例规范化Adaptive Instance Normalization (AdaIN) 技术,同时用一个MLP网络生成参数,辅助Residential Blocks生成高质量图片:


来自:https://arxiv.org/pdf/1804.04732.pdf


其中z代表前面的层输出的内容信息特征,u 和 σ 是对z的一些通道平均值和方差计算,γ 和 β 就是MLP从样式信息s生成的参数,用来调整图片生成(让图片内容更适应图片样式)。

对应代码在https://github.com/taki0112/MUNIT-Tensorflow/blob/... :




看一下MUNIT与其他模型比较(清晰度和多样性):


来自:https://arxiv.org/pdf/1804.04732.pdf


上表是从草图生成实际的鞋子和手袋的图片生成任务,可见MUNIT算是在无监督和多态之间找到了较好的平衡点。


最后看看MUNIT的图片生成样例:


来自:https://arxiv.org/pdf/1804.04732.pdf

来自:https://arxiv.org/pdf/1804.04732.pdf



参考文献:

1、Multimodal Unsupervised Image-to-Image Translation


2、https://github.com/taki0112/MUNIT-Tensorflow


3、https://github.com/NVlabs/MUNIT



*推荐文章*

CVPR2018:基于时空模型无监督迁移学习的行人重识别

CVPR 2018 | Spotlight论文:变分U-Net,可按条件独立变换目标的外观和形状


PS.极市平台正式启动了极市原创作者计划。欢迎各位的高质量的视觉方向的原创投稿文章,我们将不遗余力得在我们所有的平台上进行传播分享。更多详情请点击:活动 | 加入极市原创作者行列,实现一个小目标


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存